りおんクロニクル


SQLite × EF Core入門|コードファーストで軽量DBアプリを構築する方法【2026年版】

Home【2026年版】C# / .NET入門と実践ガイド|基礎・業務アプリ開発・SQLite連携まで体系的に解説

SQLiteはファイル1つで完結する軽量データベース、 Entity Framework Core(EF Core)は.NET標準のORM。 この2つを組み合わせると、コードファーストでスキーマ管理しやすい軽量アプリを構築できます。

この記事でわかること
・SQLite × EF Core の基本構成
・モデルとDbContextの定義方法
・マイグレーションの流れ(コードファースト)
・CRUDの実装例
・SQLite特有の制限と注意点

1. 必要なNuGetパッケージ

コンソールアプリやWebアプリで共通して使えます。

2. モデルクラスを定義する

public class User
{
    public int Id { get; set; }          // 主キー
    public string Name { get; set; }     // 必須
    public int? Age { get; set; }        // null許可
}

3. DbContextを定義する

using Microsoft.EntityFrameworkCore;

public class AppDbContext : DbContext
{
    public DbSet<User> Users { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite("Data Source=app.db");
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<User>()
            .Property(x => x.Name)
            .IsRequired()
            .HasMaxLength(100);
    }
}

4. マイグレーションを作成・適用する

コマンドライン(.NET CLI)から実行します。

dotnet ef migrations add InitialCreate
dotnet ef database update

5. INSERT(追加)

using var db = new AppDbContext();

var user = new User
{
    Name = "Taro",
    Age = 25
};

db.Users.Add(user);
db.SaveChanges();

6. SELECT(取得)

using var db = new AppDbContext();

var allUsers = db.Users.ToList();

var over20 = db.Users
    .Where(x => x.Age >= 20)
    .OrderBy(x => x.Id)
    .ToList();

7. UPDATE(更新)

using var db = new AppDbContext();

var user = db.Users.FirstOrDefault(x => x.Id == 1);
if (user != null)
{
    user.Age = 30;
    db.SaveChanges();
}

8. DELETE(削除)

using var db = new AppDbContext();

var user = db.Users.FirstOrDefault(x => x.Id == 1);
if (user != null)
{
    db.Users.Remove(user);
    db.SaveChanges();
}

9. SQLite × EF Core の注意点

SQLiteは機能がフルではない
・一部の型・機能(複雑なトランザクション、並列書き込みなど)に制限あり
・高負荷・大規模用途には不向き

10. ベストプラクティス

まとめ:SQLite × EF Core は“軽量 × スキーマ管理しやすい”構成

「インストール不要の軽量DB」+「コードで管理できるORM」 という組み合わせは、個人開発・社内ツール・小規模業務アプリにとても相性が良いです。 この記事をベースに、あなたのプロジェクトに取り入れてみてください。

前のページ  次のページ